perm filename VIDEO.LES[UP,DOC] blob
sn#002752 filedate 1972-10-06 generic text, type T, neo UTF8
12 June 1972 Video System Commands by L. Earnest
The video switch has been up for a few weeks now. The hardware
configuration is described in SAILON-69, which lives in
VDS.LES[S,DOC]. Fred Wright did the system programming needed to use
switch. He also changed some display keyboard commands.
KEYBOARD COMMAND CHANGES
The commands in which you used to type "(CONTROL)<number> [ESC]
<letter>" are now of the form "[ESC] <number> <letter>", as follows.
pause Nth line [ESC] <N> E line pause←∞ [ESC] E
pause Nth glitch [ESC] <N> J glitch pause←∞ [ESC] J
glitches/screen [ESC] <N> G set lines/glitch [ESC] <N> L
vert. position [ESC] <N> Y
The last command now has a different interpretation: "[ESC] <N> Y"
specifies a text line position at which your page printer will begin,
with 1 at the top of the screen and 40(DD) or 42(III) at the bottom.
A null argument resets to the standard position.
KEYBOARD SWITCH COMMANDS
Users of TV consoles have access to 32 Data Disc channels, numbered 0
to 37 octal, and 7 television channels, numbered 41 to 47. They are
currently allocated as follows.
0:37 DD channels 42 Sierra camera 45 Conference room TV
40 null channel 43 Kintel camera 46 color synthesizer
41 Cohu camera 44 cart receiver 47 video synthesizer
The null channel has the interesting property that it is always
utterly blank.
When you start typing something, the system automatically grabs a
Data Disc channel for you, if one is available, and marks it
"private". The following commands may be used to look at other
channels and to permit others to look at your channel. [If I show
you mine, will you show me yours?]
select channel: [ESC] <chan> S select line: [BREAK] <line> S
add channel: [ESC] <chan> A add line: [BREAK] <line> A
delete channel: [ESC] <chan> D delete line: [BREAK] <line> D
hide channel: [ESC] H unhide channel:[BREAK] H
"[ESC] <chan> S" attempts to switch your console to the given
channel. This always works for channels 40 and above, but will not
work for DD channels that are private. "[BREAK] <line> S" attempts
to select the console channel for the given line number (i. e. the
TTY number, 1 through 127). This facilitates showing someone else
what the machine did to you.
The "A" commands work in similar fashion to add a channel to the
one(s) you are already looking at, subject to the privacy constraint.
It is possible to view simultaneously any number of DD channels and
one synchronous TV channel. Currently only the synthesizers and the
null channel are synchronous, but the cameras will be later. If you
select or add an asynchronous TV channel (currently 41:45), then all
DD channels are blocked until you select or add a synchronous TV
channel. If this seems confusing to you, think how your monitor must
feel.
The "D" commands are simply the inverse of "A". A null <chan> or
<line> in an "S", "A", or "D" command refers to your main channel.
Thus "[ESC] S" turns on just your page printer channel.
The "H" commands let you exhibit yourself, then hide again. Your
state of privacy or exhibitionism persists as long as you keep the
channel, but drops out when "this console available" appears.
To get a summary of the above commands, say "HELP DISPLAY" to the
monitor, or "SPOOL KEY.LES[UP,DOC]".
MONITOR CALLS
The following UUOs have been added to permit user programs to get
extra DD channels and to switch things around.
DDCHAN CALLI 400067
MOVE AC,[<channel request>]
CALL AC,[SIXBIT/DDCHAN/]
This UUO is used to get and release DD channels and to get
information. The channel request is interpreted as follows.
BITS 28,29 operation
0 - release channel 2 - get status
1 - get channel 3 - set status
A "get channel" will fail if the requested channel is unavailable. A
"set status" will fail if the channel doesn't belong to you. These
two commands skip on success; otherwise, the next instruction is
executed.
BITS 30:35 channel number
Values 0 through 37 specify a particular DD channel. In a "get
channel" request, the value 77 specifies "any channel". In a "get
status" or "set status", 77 means your main channel. In a "release
channel", 77 releases all channels assigned to the job. A RESET
(CALLI 0) does the same thing. Other values for channel number are
undefined.
BIT 0 privacy
A "1" in this position means no one else can look at this channel.
BIT 1 write permission
A "1" in this position means that other jobs can write on this
channel.
After execution of this UUO (except for a "release all channels" or a
"get any channel" failure), the AC contains the channel number in the
right half, the privacy and write permission status in bits 0 and 1,
plus the following information.
BITS 10:17 channel use
A value of "0" in this field means the channel is free. 1 through 77
means that it is an extra channel belonging to that job number. 100
through 177 means that it is the main channel for the TTY line whose
number is 52 (octal) less than this. 200 through 377 are for special
channels, such as the one that says "this console available".
EXAMPLE: To request a private channel that only your job can write
on, do
MOVE AC,[400000,,177]
CALL AC,[SIXBIT/DDCHAN/]
JRST LOSE
WIN: ...
If you get to WIN, the channel number will be in the right half of AC
and the left half will have the sign bit on with your job number in
bits 10 through 17.
VDSMAP CALLI 400070
MOVE AC,[<switch request>,,<map address>]
CALL AC,[SIXBIT/VDSMAP/]
This UUO is used to select the channels that are displayed on a given
monitor. Each monitor is controlled by a 36 bit map that specifies
which channels are "on", as follows.
BITS 0:31 DD channels
A 1 in bit i means that DD channel i is connected to this
monitor.
BITS 33:35 TV channels
0 in this field selects the null channel; 1 through 7 selects the
corresponding TV camera, receiver, or synthesizer. In terms of
keyboard commands, these are channels 41 through 47.
BIT 32 asynchronous bit
"0" causes DD sync to be inserted, "1" blocks DD sync and all DD
channels. Whenever bits 33:35 specify an asynchronous source, the
system automatically sets this bit to "1".
EXAMPLE: A map containing "200000,,7" selects DD channel 1 and TV
channel 47.
The system keeps 2 maps for each monitor channel, called the
permanent map and the temporary map. The keyboard commands mentioned
above change the permanent map and the switch is set to the permanent
map whenever a RESET is performed, as when a program exits.
The right half of the AC used in this UUO points to a channel map, as
above, while the left half is interpreted as follows.
BITS 11:17 line number
"0" means "own". Other lines associated with TV monitors (26 through
117) may be switched only if they have no job logged in.
BIT 0 temporary/permanent
0 means a temporary change, 1 means permanent.
BITS 6:8 operation
0 - NOP. Never skips. Useful for getting switch status.
1 - Set map. Skips if entirely successful (line is free or owned
and there is no privacy problem).
2 - Add specified channels. Bits 0:31 of the new map are "or"ed
with the old map. If bits 33:35 of the new map are non-zero
they replace the old value. Skips on complete success.
3 - Delete channels (inverse of 2). If any of bits 33:35 in the
new map is "1", this field is cleared to "0", which selects
the null TV channel. Fails only on a busy line number. Skips
on success.
4 - Reset map. In temporary mode (per bit 0), this resets the
map to the permanent one. In permanent mode, this resets
the map to the main channel alone. Fails only on a busy
line number. Skips on success.
5:7 - Undefined.
EXAMPLE 1: To temporarily connect DD channel 21 and TV channel 47 to
your monitor.
MOVE AC,[1000,,[1,,7]]
CALL AC,[SIXBIT/VDSMAP/]
JRST LOSE
WIN: ...
EXAMPLE 2: To get the current channel map of line 37.
MOVSI AC,37
CALLI AC,400070
...
The result appears in the AC.
If that isn't sufficiently confusing, consult F. Wright or L.
Earnest.